
#include "../core/typedefs.h"
#include "../core/constraints.h"
#include "../core/deformation.h"

#include <iostream>

using namespace std;

/*
void print(const Number *pos, int n) {
   
   //~ for (int i=0; i<n; ++i)
      //~ cout<<" : "<<pos[i*3]<<" "<<pos[i*3+1]<<" "<<pos[i*3+2]<<endl;
}

void print(const Constraints &dcpos) {
   
   //~ print(&dcpos->positions[0][0], dcpos->size());
}
*/

int main() {
   
   /*
   // Define the points to be deformed
   int npoints = 3;
   Number points[] = {-1,0,0, 0,0,0, 1,0,0};
   cout<<"Initial data set ..."<<endl;
   print(points,npoints);
   
   // Define the constraints
   //~ using MLS::Point3;
   Constraints constraints;
   constraints.push_back(Point3(1,1,1));
   constraints.push_back(Point3(1,1,-1));
   constraints.push_back(Point3(1,-1,1));
   cout<<"The initial constraints ..."<<endl;
   print(&constraints);
   
   // Instance a MLS-based deformer
   Deformation deformer;
   deformer.setting(points, npoints, &constraints.positions);
   deformer.initialize();
   
   // Specify a new constraint set
   Vector3 t(0.5,0.0,0.0);
   constraints.translate(0, t);
   cout<<"The deformed constraints ..."<<endl;
   print(&constraints);
   
   // Execute the deformation
   deformer.execute_deformation(&constraints.positions, points);
   cout<<"Deformed data set ..."<<endl;
   print(points,npoints);
   */
   
   return 0;
}
